package com.wx.md.adb;

import com.android.ddmlib.IDevice;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;

public class DefaultAdbEnv implements IAdbEnv {
    String adbPath = "D:\\adb\\";
    String adbWindPath = "D:\\adb\\";
    String adbLinuxPath = "D:\\adb\\";

    /**
     * 获取系统adb路径
     *
     * @return
     */
    public String getAdbPath() {
        String androidHome = System.getenv("ANDROID_HOME");
        if (androidHome != null) {
            adbPath += File.separator + "adb";
            return adbPath;
        } else {
            String osName = System.getProperty("os.name").toLowerCase();
            if (osName.startsWith("windows")) {
                adbPath = adbWindPath + File.separator + "adb";
            } else {
                adbPath = adbLinuxPath + File.separator + "adb";
            }
            return adbPath;
        }

    }


    public String excuteCommand(String cmd) {
        /* 获取cmd命令 */
        try {
            System.out.println("正在执行命令：" + cmd);
            Process pro = Runtime.getRuntime().exec(cmd); // 添加要进行的命令，"cmd
            // /c
            // calc"中calc代表要执行打开计算器，如何设置关机请自己查找cmd命令
            BufferedReader br = new BufferedReader(new InputStreamReader(pro.getInputStream())); // 虽然cmd命令可以直接输出，但是通过IO流技术可以保证对数据进行一个缓冲。
            String msg = null;
            StringBuffer result = new StringBuffer();
            System.out.println("执行完成！！！");
            while ((msg = br.readLine()) != null) {
                //System.out.println(msg);
                result.append(msg);
            }
            // System.out.println(result);
            return result.toString();
        } catch (IOException exception) {
            exception.printStackTrace();
            return "";
        }

        /*
         * cmd /c dir 是执行完dir命令后关闭命令窗口 cmd /k dir 是执行完dir命令后不关闭命令窗口 cmd /c start
         * dir 会打开一个新窗口后执行dir命令，原窗口会关闭 cmd /k start dir 会打开一个新窗口后执行dir命令，原窗口不会关闭
         * cmd /? 查看帮助信息
         */
    }






}
